/*
 * 中央事件总线插件
 * ** 第一是$bus.on应该在created钩子内使用，如果在mounted使用，它可能接收不到其他组件来自created钩子内发出的事件；第二点是使用了$bus.on在beforeDestroy钩子里应该需要使用$bus.off解除
 *
 * main.js 安装
   import Bus from './bus'
   Vue.use(VueBus)
 *
 * test1.vue
   this.$bus.emit('add', 2)
 *
 * test2.vue
   created() {
     this.$bus.on('add', this.handleChangeNum)
   },
   beforeDestroy() {
     this.$bus.off('add', this.handleChangeNum)
   },
   methods: {
     handleChangeNum(num) {
       console.log(num)
     }
   }
 *
 */
import Vue from 'vue'
export const Bus = new Vue({
  methods: {
    emit(event, ...args) {
      this.$emit(event, ...args)
    },
    on(event, callback) {
      this.$on(event, callback)
    },
    off(event, callback) {
      this.$off(event, callback)
    }
  }
})
